package k.web.basic;

import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * Created by 刘宇飞 on 2015/10/17.
 * 描述： 定义用户登录后的环境上下文， 这个对象保存到服务器缓存中
 * ，后台应用可以根据需要取出以取得相关信息；
 */
public class ScContext implements Serializable {

    static private ScContext contextInstance;
    // ---------------------------<一般信息>--------------------------------
    private String userId;
    private String loginName;
    private String loginPassWord;// 用户MD5加密后密码



    private Map<String, String> roleMap = new LinkedHashMap<String, String>(); // 用户(操作员)的角色列表


    public static ScContext getContextInstance() {
        if(contextInstance==null)
            return  new ScContext();
        else
            return contextInstance;
    }



    /**
     * setRoleMap描述：
     *
     * @param roleMap
     *          要设置的 roleMap
     */
    public void setRoleMap(Map<String, String> roleMap) {
        this.roleMap = roleMap == null ? new LinkedHashMap<String, String>() : roleMap;
    }
    /**
     * getRoleMap描述： 取当前操作人员所具有的角色列表
     *
     * @return 返回 roleMap
     */
    public Map<String, String> getRolesMap() {
        return roleMap;
    }

    /**
     * getRole描述： 取当前操作人员所具有的角色列表
     *
     * @return 返回 roleMap
     */
    public String[] getRoles() {
        if (roleMap == null || roleMap.size() == 0)
            return null;
        String[] roles = new String[roleMap.size()];
        roleMap.keySet().toArray(roles);
        return roles;
    }


    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getLoginPassWord() {
        return loginPassWord;
    }

    public void setLoginPassWord(String loginPassWord) {
        this.loginPassWord = loginPassWord;
    }

    public String getLoginName() {
        return loginName;
    }

    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }
}
